perm filename FOO.OUT[E80,JMC] blob
sn#533505 filedate 1980-08-31 generic text, type T, neo UTF8
⊗⊗ inst[pat, expr, a] ← ⊗
⊗⊗ qif a = $$NO$ qthen $$NO$⊗
⊗⊗ qelse qif isvar pat qthen ⊗
⊗⊗ {assoc[pat, a]}[λz: ⊗
⊗⊗ qif qn z qthen [pat . expr] . a⊗
⊗⊗ qelse qif qd z = expr qthen a⊗
⊗⊗ qelse $$NO$]⊗
⊗⊗ qelse qif qat pat qthen [qif pat = expr qthen a qelse $$NO$]⊗
⊗⊗ qelse qif qat expr qthen $$NO$⊗
⊗⊗ qelse inst[qd pat, qd expr, inst[qa pat, qa expr, a]]⊗
⊗⊗ instth[pat, exp, a] ← catch instth1[pat, exp, a]⊗
⊗⊗ instth1[pat, exp, a] ← ⊗
⊗⊗ if[isvar pat, ⊗
⊗⊗ {assoc[pat, a]}[λw: ⊗
⊗⊗ if[qn w, [pat . exp] . a, qd w = exp, a, throw $$NO$]], ⊗
⊗⊗ qat pat, ⊗
⊗⊗ if[pat = exp, a, throw $$NO$], ⊗
⊗⊗ qat exp, ⊗
⊗⊗ throw $$NO$, ⊗
⊗⊗ instth1[qd pat, qd exp, instth1[qa pat, qa exp, a]]]⊗
⊗⊗ isvar x ← ⊗
⊗⊗ x⊗
⊗⊗ ε $$(X ⊗
⊗⊗ X0 ⊗
⊗⊗ X1 ⊗
⊗⊗ X2 ⊗
⊗⊗ Y ⊗
⊗⊗ Y0 ⊗
⊗⊗ Y1 ⊗
⊗⊗ Y2 ⊗
⊗⊗ Z ⊗
⊗⊗ Z0 ⊗
⊗⊗ Z1 ⊗
⊗⊗ Z2 ⊗
⊗⊗ U ⊗
⊗⊗ U0 ⊗
⊗⊗ U1 ⊗
⊗⊗ U2 ⊗
⊗⊗ V ⊗
⊗⊗ V0 ⊗
⊗⊗ V1 ⊗
⊗⊗ V2 ⊗
⊗⊗ W ⊗
⊗⊗ W0 ⊗
⊗⊗ W1 ⊗
⊗⊗ W2)⊗
⊗⊗ instp[pat, exp, a] ← ⊗
⊗⊗ if[isvar pat, ⊗
⊗⊗ {assoc[pat, a]}[λw: ⊗
⊗⊗ [qn w ∧ [[pat . exp] . a]] ∨ [qd w = exp ∧ a]], ⊗
⊗⊗ qat pat, ⊗
⊗⊗ pat = exp ∧ a, ⊗
⊗⊗ ¬qat exp ∧ instp[qd pat, qd exp, instp[qa pat, qa exp, a]]]⊗
⊗⊗ match[expr, pattern] ← ⊗
⊗⊗ qprog [w]⊗
⊗⊗ w ← inst[expr, pattern, qNIL]⊗
⊗⊗ $$LLLL:$ qif qat w qthen return w⊗
⊗⊗ set[qaa w, qda w]⊗
⊗⊗ w ← qd w⊗
⊗⊗ qgo $$LLLL$⊗